package com.wutma.system.utils;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/**
 * 加密算法⼯具类
 */
public class BCryptUtils {
 /**
  * ⽣成加密后密⽂
  *
  * @param password 密码
  * @return 加密字符串
  */
 // 每次加密后的结果不一样
   public static String encryptPassword(String password) {
        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
        return passwordEncoder.encode(password);
   }
 /**
  * 判断密码是否相同
  *
  * @param rawPassword 真实密码
  * @param encodedPassword 加密后密⽂
  * @return 结果
  */
   // 根据从数据库中获取的加密后的密码encodedPassword，提取出当时加密用的 `盐值`，
   // 再将这个盐值与用户输入的密码进行加密，得出的密码与数据库中的密码进行匹配来判断密码是否正确，相同则正确
   public static boolean matchesPassword(String rawPassword, String encodedPassword) {
       BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
       return passwordEncoder.matches(rawPassword, encodedPassword);
   }

    public static void main(String[] args) {
        System.out.println(encryptPassword(String.valueOf(123456)));
    }
}